[Thymeleaf] 주석

Thymeleaf가 지원하는 세 가지 주석 방식을 정리한 노트다. 표준 HTML 주석(<!-- -->)은 렌더링 후에도 그대로 남고, Thymeleaf 파서 주석(<!--/* */-->)은 렌더링 시 완전히 제거되며, 프로토타입 주석(<!--/*/ /*/-->)은 반대로 일반 HTML로 열면 주석 처리되지만 Thymeleaf로 렌더링하면 내용이 노출된다는 점이 핵심 차이다.

실행 환경

<html xmlns:th="http://www.thymeleaf.org"> 선언 외에 구체적인 Thymeleaf 버전을 특정할 근거는 없다. Tomcat/Spring Boot 등 Thymeleaf를 지원하는 서버 환경이 필요하며, 구체적인 버전은 명시되어 있지 않다.

표준 html 주석

    • thymeleaf가 렌더링하지 않고, 그대로 남겨둔다.
    • 주석 부분이 html에 그대로 남겨져 있다
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Thymeleaf Example</title>
    <link rel="stylesheet" href="styles.css" />
  </head>
  <body>
    
    <!-- 이게 Html 주석 -->
    <!-- <span th:text="${data}">Example</span> -->
      
  </body>
</html>

Thymeleaf 주석

  • [내용]
    • thymeleaf가 렌더링할시, 해당 부분을 제거한다
    • 주석 부분이 html에 남아있지 않게 된다
    • 주로 thymeleaf 주석으로 사용됨
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Thymeleaf Example</title>
    <link rel="stylesheet" href="styles.css" />
  </head>
  <body>
    
    <!--/*-->
    <span th:text="${data}">Example</span> -> 이부분이 타임리프 렌더링시 삭제됨
    <!--*/-->
      
  </body>
</html>

Thymeleaf 프로토타입 주석

    • 일반적인 html 렌더링시에는 주석으로 처리
    • thymeleaf로 렌더링시에 보이게 된다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Thymeleaf Example</title>
    <link rel="stylesheet" href="styles.css" />
  </head>
  <body>
    
    <!--/*/
    <span th:text="${data}">Example</span> -> 타임리프 렌더링에서만 실행됨
    /*/-->
      
  </body>
</html>